package com.hxzy.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hxzy.dto.SysMenuDTO;
import com.hxzy.entity.SysMenu;
import com.hxzy.vo.SysMenuTreeVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.math.BigDecimal;
import java.util.List;
import java.util.Set;

@Mapper
public interface SysMenuMapper extends BaseMapper<SysMenu> {

    /**
     * 读取所有的菜单(给用户分配权限用)
     * @return
     */
    @Select(value = "select MENU_ID,MENU_NAME,PARENT_ID from SYS_MENU where STATUS='0' order by PARENT_ID,ORDER_NUM,MENU_ID")
    List<SysMenu> loadMenuTree();

    /**
     * 查询所有菜单
     * @param dto
     * @return
     */
    List<SysMenuTreeVO> search(@Param(value = "dto") SysMenuDTO dto);

    /**
     * 根据主键查询
     * @param menuId
     * @return
     */
    SysMenuTreeVO findById(BigDecimal menuId);

    /**
     * 查询它拥有的权限
     * @param adminId
     * @return
     */
    Set<String> findMenuPermsByAdminId(Long adminId);
}